package types

type ServerConfigResp = Data[ServerConfigRespRaw]

type ServerConfigRespRaw = []ServerConfig

type SetServerConfigResp struct {
	Code    int `json:"code"`
	Changed int `json:"changed"`
}

type ServerConfig struct {
	ApiApiDebug                    string `json:"api.apiDebug"`
	ApiDefaultSnap                 string `json:"api.defaultSnap"`
	ApiDownloadRoot                string `json:"api.downloadRoot"`
	ApiSecret                      string `json:"api.secret"`
	ApiSnapRoot                    string `json:"api.snapRoot"`
	ClusterOriginUrl               string `json:"cluster.origin_url"`
	ClusterRetryCount              string `json:"cluster.retry_count"`
	ClusterTimeoutSec              string `json:"cluster.timeout_sec"`
	FfmpegBin                      string `json:"ffmpeg.bin"`
	FfmpegCmd                      string `json:"ffmpeg.cmd"`
	FfmpegDownload                 string `json:"ffmpeg.download"`
	FfmpegLog                      string `json:"ffmpeg.log"`
	FfmpegRestartSec               string `json:"ffmpeg.restart_sec"`
	FfmpegSnap                     string `json:"ffmpeg.snap"`
	GeneralCheckNvidiaDev          string `json:"general.check_nvidia_dev"`
	GeneralEnableVhost             string `json:"general.enableVhost"`
	GeneralEnableFfmpegLog         string `json:"general.enable_ffmpeg_log"`
	GeneralFlowThreshold           string `json:"general.flowThreshold"`
	GeneralMaxStreamWaitMS         string `json:"general.maxStreamWaitMS"`
	GeneralMediaServerId           string `json:"general.mediaServerId"`
	GeneralMergeWriteMS            string `json:"general.mergeWriteMS"`
	GeneralResetWhenRePlay         string `json:"general.resetWhenRePlay"`
	GeneralStreamNoneReaderDelayMS string `json:"general.streamNoneReaderDelayMS"`
	GeneralUnreadyFrameCache       string `json:"general.unready_frame_cache"`
	GeneralWaitAddTrackMs          string `json:"general.wait_add_track_ms"`
	GeneralWaitTrackReadyMs        string `json:"general.wait_track_ready_ms"`
	HlsBroadcastRecordTs           string `json:"hls.broadcastRecordTs"`
	HlsDeleteDelaySec              string `json:"hls.deleteDelaySec"`
	HlsFastRegister                string `json:"hls.fastRegister"`
	HlsFileBufSize                 string `json:"hls.fileBufSize"`
	HlsSegDelay                    string `json:"hls.segDelay"`
	HlsSegDur                      string `json:"hls.segDur"`
	HlsSegKeep                     string `json:"hls.segKeep"`
	HlsSegNum                      string `json:"hls.segNum"`
	HlsSegRetain                   string `json:"hls.segRetain"`
	HookAliveInterval              string `json:"hook.alive_interval"`
	HookEnable                     string `json:"hook.enable"`
	HookOnFlowReport               string `json:"hook.on_flow_report"`
	HookOnHttpAccess               string `json:"hook.on_http_access"`
	HookOnPlay                     string `json:"hook.on_play"`
	HookOnPublish                  string `json:"hook.on_publish"`
	HookOnRecordMp4                string `json:"hook.on_record_mp4"`
	HookOnRecordTs                 string `json:"hook.on_record_ts"`
	HookOnRtpServerTimeout         string `json:"hook.on_rtp_server_timeout"`
	HookOnRtspAuth                 string `json:"hook.on_rtsp_auth"`
	HookOnRtspRealm                string `json:"hook.on_rtsp_realm"`
	HookOnSendRtpStopped           string `json:"hook.on_send_rtp_stopped"`
	HookOnServerExited             string `json:"hook.on_server_exited"`
	HookOnServerKeepalive          string `json:"hook.on_server_keepalive"`
	HookOnServerStarted            string `json:"hook.on_server_started"`
	HookOnShellLogin               string `json:"hook.on_shell_login"`
	HookOnStreamChanged            string `json:"hook.on_stream_changed"`
	HookOnStreamNoneReader         string `json:"hook.on_stream_none_reader"`
	HookOnStreamNotFound           string `json:"hook.on_stream_not_found"`
	HookRetry                      string `json:"hook.retry"`
	HookRetryDelay                 string `json:"hook.retry_delay"`
	HookStreamChangedSchemas       string `json:"hook.stream_changed_schemas"`
	HookTimeoutSec                 string `json:"hook.timeoutSec"`
	HttpAllowCrossDomains          string `json:"http.allow_cross_domains"`
	HttpAllowIpRange               string `json:"http.allow_ip_range"`
	HttpCharSet                    string `json:"http.charSet"`
	HttpDirMenu                    string `json:"http.dirMenu"`
	HttpForbidCacheSuffix          string `json:"http.forbidCacheSuffix"`
	HttpForwardedIpHeader          string `json:"http.forwarded_ip_header"`
	HttpKeepAliveSecond            string `json:"http.keepAliveSecond"`
	HttpMaxReqSize                 string `json:"http.maxReqSize"`
	HttpNotFound                   string `json:"http.notFound"`
	HttpPort                       string `json:"http.port"`
	HttpRootPath                   string `json:"http.rootPath"`
	HttpSendBufSize                string `json:"http.sendBufSize"`
	HttpSslPort                    string `json:"http.sslport"`
	HttpVirtualPath                string `json:"http.virtualPath"`
	MulticastAddrMax               string `json:"multicast.addrMax"`
	MulticastAddrMin               string `json:"multicast.addrMin"`
	MulticastUdpTTL                string `json:"multicast.udpTTL"`
	ProtocolAddMuteAudio           string `json:"protocol.add_mute_audio"`
	ProtocolAutoClose              string `json:"protocol.auto_close"`
	ProtocolContinuePushMs         string `json:"protocol.continue_push_ms"`
	ProtocolEnableAudio            string `json:"protocol.enable_audio"`
	ProtocolEnableFmp4             string `json:"protocol.enable_fmp4"`
	ProtocolEnableHls              string `json:"protocol.enable_hls"`
	ProtocolEnableHlsFmp4          string `json:"protocol.enable_hls_fmp4"`
	ProtocolEnableMp4              string `json:"protocol.enable_mp4"`
	ProtocolEnableRtmp             string `json:"protocol.enable_rtmp"`
	ProtocolEnableRtsp             string `json:"protocol.enable_rtsp"`
	ProtocolEnableTs               string `json:"protocol.enable_ts"`
	ProtocolFmp4Demand             string `json:"protocol.fmp4_demand"`
	ProtocolHlsDemand              string `json:"protocol.hls_demand"`
	ProtocolHlsSavePath            string `json:"protocol.hls_save_path"`
	ProtocolModifyStamp            string `json:"protocol.modify_stamp"`
	ProtocolMp4AsPlayer            string `json:"protocol.mp4_as_player"`
	ProtocolMp4MaxSecond           string `json:"protocol.mp4_max_second"`
	ProtocolMp4SavePath            string `json:"protocol.mp4_save_path"`
	ProtocolPacedSenderMs          string `json:"protocol.paced_sender_ms"`
	ProtocolRtmpDemand             string `json:"protocol.rtmp_demand"`
	ProtocolRtspDemand             string `json:"protocol.rtsp_demand"`
	ProtocolTsDemand               string `json:"protocol.ts_demand"`
	RecordAppName                  string `json:"record.appName"`
	RecordFastStart                string `json:"record.fastStart"`
	RecordFileBufSize              string `json:"record.fileBufSize"`
	RecordFileRepeat               string `json:"record.fileRepeat"`
	RecordSampleMS                 string `json:"record.sampleMS"`
	RtcExternIP                    string `json:"rtc.externIP"`
	RtcMaxBitrate                  string `json:"rtc.max_bitrate"`
	RtcMinBitrate                  string `json:"rtc.min_bitrate"`
	RtcPort                        string `json:"rtc.port"`
	RtcPreferredCodecA             string `json:"rtc.preferredCodecA"`
	RtcPreferredCodecV             string `json:"rtc.preferredCodecV"`
	RtcRembBitRate                 string `json:"rtc.rembBitRate"`
	RtcStartBitrate                string `json:"rtc.start_bitrate"`
	RtcTcpPort                     string `json:"rtc.tcpPort"`
	RtcTimeoutSec                  string `json:"rtc.timeoutSec"`
	RtmpDirectProxy                string `json:"rtmp.directProxy"`
	RtmpEnhanced                   string `json:"rtmp.enhanced"`
	RtmpHandshakeSecond            string `json:"rtmp.handshakeSecond"`
	RtmpKeepAliveSecond            string `json:"rtmp.keepAliveSecond"`
	RtmpPort                       string `json:"rtmp.port"`
	RtmpSslPort                    string `json:"rtmp.sslport"`
	RtpAudioMtuSize                string `json:"rtp.audioMtuSize"`
	RtpH264StapA                   string `json:"rtp.h264_stap_a"`
	RtpLowLatency                  string `json:"rtp.lowLatency"`
	RtpRtpMaxSize                  string `json:"rtp.rtpMaxSize"`
	RtpVideoMtuSize                string `json:"rtp.videoMtuSize"`
	RtpProxyDumpDir                string `json:"rtp_proxy.dumpDir"`
	RtpProxyGopCache               string `json:"rtp_proxy.gop_cache"`
	RtpProxyH264Pt                 string `json:"rtp_proxy.h264_pt"`
	RtpProxyH265Pt                 string `json:"rtp_proxy.h265_pt"`
	RtpProxyOpusPt                 string `json:"rtp_proxy.opus_pt"`
	RtpProxyPort                   string `json:"rtp_proxy.port"`
	RtpProxyPortRange              string `json:"rtp_proxy.port_range"`
	RtpProxyPsPt                   string `json:"rtp_proxy.ps_pt"`
	RtpProxyTimeoutSec             string `json:"rtp_proxy.timeoutSec"`
	RtspAuthBasic                  string `json:"rtsp.authBasic"`
	RtspDirectProxy                string `json:"rtsp.directProxy"`
	RtspHandshakeSecond            string `json:"rtsp.handshakeSecond"`
	RtspKeepAliveSecond            string `json:"rtsp.keepAliveSecond"`
	RtspLowLatency                 string `json:"rtsp.lowLatency"`
	RtspPort                       string `json:"rtsp.port"`
	RtspRtpTransportType           string `json:"rtsp.rtpTransportType"`
	RtspSslPort                    string `json:"rtsp.sslport"`
	ShellMaxReqSize                string `json:"shell.maxReqSize"`
	ShellPort                      string `json:"shell.port"`
	SrtLatencyMul                  string `json:"srt.latencyMul"`
	SrtPktBufSize                  string `json:"srt.pktBufSize"`
	SrtPort                        string `json:"srt.port"`
	SrtTimeoutSec                  string `json:"srt.timeoutSec"`
}
